/**
 * \file CChatThread.h
 * \author Corentin Le Bail
 * \date 2009-2012
 * \brief Fichier de déclaration de la class CChatThread
 */
//------------------------------------------------------------------------------
#ifndef __CCHATTHREAD_H__
#define __CCHATTHREAD_H__
//------------------------------------------------------------------------------
#include <QThread>
#include <QSqlDatabase>
#include <QSqlQuery>
//------------------------------------------------------------------------------
/**
 * \class CChatThread CChatThread.h "CChatThread.h"
 * \brief Classe singleton du thread d'affichage des messages de chat.
 */
class CChatThread : public QThread
{
	Q_OBJECT
	public:
		/**
		 * \fn void stop(void)
		 * \brief Arrête l'exécution du thread
		 */
		void stop(void) { isThreadStopped=true; }
		/**
		 * \fn static CChatThread *getInstance(void)
		 * \return l'instance du singleton
		 */
		static CChatThread *getInstance(void);
	private:
		QSqlDatabase db;
		bool isThreadStopped;
		static CChatThread *instance;

		CChatThread(QObject *parent=0);
		void run(void);
	signals:
		/**
		 * \fn void addLine(QSqlQuery *query, int *lastId)
		 * \brief Singal d'ajout d'une ligne
		 * \param[in] query Object QSqlQuery contenant l'enregistrement à ajouter
		 * \param[out] lastId Identifiant de la dernière ligne ajouté
		 */
		void addLine(QSqlQuery *query, int *lastId);
};
//------------------------------------------------------------------------------
#endif //__CCHATTHREAD_H__
//------------------------------------------------------------------------------